package cn.tedu.test.config.condition;

import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.env.Environment;
import org.springframework.core.type.AnnotatedTypeMetadata;

/**
 * 给条件注解使用 @Conditional
 * 用来判断是否满足条极的逻辑
 */
public class OnWindowsCondition implements Condition {
    //当前类教给条件注解使用,会使用matches判断条件是否满足
    //方法执行结束 返回值是true 表示条件满足 返回值是false表示条件不满足
    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
        //判断当前系统是否是windows 可以从系统变量里拿到系统名称
        //如果系统名称包含windows 就是条件满足 不包含 条件不满足
        Environment environment = context.getEnvironment();
        String osName = environment.getProperty("os.name");
        System.out.println(osName);
        if (osName.contains("Windows")){
            return true;
        }
        return false;
    }
}
